/**
 * FileViewer.java
 * test
 * Copyright (c) 2013, 公司版权所有.
*/

package test;

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import com.ebook.util.FileUtil;

/**
 * TODO(这里用一句话描述这个类的作用)
 * <p>
 * TODO(这里描述这个类补充说明 – 可选)
 * @author    潘吉友
 * @Date	 2013-5-17 	 
 */
public class FileViewer {
	

	public static void main(String[] args) {
		   List<String> list = FileUtil.getListFiles("C:/Users/TechKno001/Desktop/tt","so",true);
		}
		public static List<String> fileList = new ArrayList<String>();

		/**
		* 
		* @param path 文件路径
		* @param suffix 后缀名
		* @param isdepth 是否遍历子目录
		* @return
		*/
		public static List<String> getListFiles(String path, String suffix, boolean isdepth) {
		   File file = new File(path);
		   List<String> list = FileViewer.listFile(file ,suffix, isdepth);
		   if(list.isEmpty()){
		    System.out.println("没有符号要求的文件");
		   }
		   else
		   {
		    StringBuilder message = new StringBuilder();
		    message.append("符号要求的文件数：").append(list.size()).append("\r\n");
		    System.out.println(message.toString());
		   
		    for (Iterator<String> i = list.iterator(); i.hasNext();)
		    {
		     String temp = i.next();
		     System.out.println(temp);
		     message.append(temp).append("\r\n");
		    }
		   
		    appendMethod("C:/Users/TechKno001/Desktop/tt/menu.txt",message.toString());
		   }
		   return list;
		}

		public static List<String> listFile(File f, String suffix, boolean isdepth){
		   //是目录，同时需要遍历子目录
		   if (f.isDirectory() && isdepth == true)
		   {
		    File[] t = f.listFiles();
		    for (int i = 0; i < t.length; i++)
		    {
		     listFile(t[i], suffix, isdepth);
		    }
		   }
		   else 
		   {
		    String filePath = f.getAbsolutePath();
		   
		    if(suffix !=null)
		    {
		     int begIndex = filePath.lastIndexOf(".");//最后一个.(即后缀名前面的.)的索引
		     String tempsuffix = "";
		    
		     if(begIndex != -1)//防止是文件但却没有后缀名结束的文件
		     {
		      tempsuffix = filePath.substring(begIndex + 1, filePath.length());
		     }
		    
		     if(tempsuffix.equals(suffix))
		     {
		      fileList.add(filePath);
		     }
		    }
		    else
		    {
		     //后缀名为null则为所有文件
		     fileList.add(filePath);
		    }
		   
		   }
		  
		   return fileList;
		}

		/**
		    * 方法追加文件：使用FileWriter
		    * @param fileName
		    * @param content
		    */
		public static void appendMethod(String fileName, String content)
		{
		    try 
		    {
		     //打开一个写文件器，构造函数中的第二个参数true表示以追加形式写文件
		     FileWriter writer = new FileWriter(fileName, true);
		     writer.write(content + "\r\n");
		     writer.close();
		    } 
		    catch (IOException e) 
		    {
		     e.printStackTrace();
		    }
		} 


}

